# 学员信息在线管理


#1. 编写stu表信息操作类：内有方法：构造方法实现数据库连接；析构方法关闭数据连接；
#        findAll( )--查询方法 、del（id）-- 删除方法   insert（data）--添加方法
#    2. 使用使用上面自定义stu表操作类，结合1.10的综合案例，做出增，删，查询操作。

import pymysql

class Mydb:
    show_sql = "select * from stu"
    db = pymysql.connect()

    def __init__(self):#初始化连接数据库
        self.db = pymysql.connect(host="localhost",user="root",password="",db="mydb",charset="utf8")

        
    def __del__(self):#析构函数，退出
        self.db.close()

#查询
    def findAll(self):
        cursor = self.db.cursor()
        cursor.execute(self.show_sql)
        print("当前记录条数：",cursor.rowcount)
        alist = cursor.fetchall()
        for vo in alist:
            print(vo)

#删除
    def delete(self):
        a = int(input("请输入要删除的id："))
        del_sql = "delete from stu where id=%a"%a

        cursor = self.db.cursor()
        cursor.execute(del_sql)
        self.db.commit()
        print("成功删除")

#增加
    def insert(self):
        name = input("请输入要添加的姓名：")
        age = input("请输入要添加的年龄：")
        classid = input("请输入要添加的班级号：")
        data = (name,int(age),classid)
        add_sql = "insert into stu(name,age,classid) values('%s','%d','%s')"%(data)

        cursor = self.db.cursor() 
        cursor.execute(add_sql)
        self.db.commit()
        print("成功添加")


#类的实例化
stu = Mydb() 


while True:
    # 输出初始界面
    print("="*12,"学员管理系统","="*14)
    print("{0:1} {1:13} {2:15}".format(" ","1. 查看学员信息","2. 添加学员信息"))
    print("{0:1} {1:13} {2:15}".format(" ","3. 删除学员信息","4. 退出系统"))
    print("="*40)
    key = input("请输入对应的选择：")
    # 根据键盘值，判断并执行对应的操作
    if key == "1":
        stu.findAll()
        input("按回车键继续：")
    elif key == "2":
        stu.insert()
        stu.findAll()
        input("按回车键继续：")
    elif key == "3":
        stu.delete()
        stu.findAll()
        input("按回车键继续：")
    elif key == "4":
        print("="*12,"再见","="*14)
        break
    else:
        print("======== 无效的键盘输入！ ==========")
